// common/http.interceptor.js

// 这里的Vue为Vue对象(非创建出来的实例)，vm为main.js中“Vue.use(httpInterceptor, app)”这一句的第二个参数，
// 为一个Vue的实例，也即每个页面的"this"
// 如果需要了解这个install方法是什么，请移步：https://uviewui.com/components/vueUse.html
const install = (Vue, vm) => {
	// 此为自定义配置参数，具体参数见上方说明
	Vue.prototype.$u.http.setConfig({
		// baseUrl: 'https://3020.zhouyangjun.com',
		// baseUrl: 'https://www.ruomiankj.com',
		// baseUrl: 'https://www.ruo.shanxiyf.com',
		baseUrl: 'https://ruo.shanxiyf.com',
		loadingText: '努力加载中~',
		loadingTime: 800,
		showLoading: false, // 是否显示请求中的loading
		// 设置自定义头部content-type
		header: {
			'token': uni.getStorageSync("rmToken")
		}
		// ......
	});
	// 响应拦截，如配置，每次请求结束都会执行本方法
		Vue.prototype.$u.http.interceptor.response = (res) => {
			if(res.code == 200) {
				// res为服务端返回值，可能有code，result等字段
				// 这里对res.result进行返回，将会在this.$u.post(url).then(res => {})的then回调中的res的到
				// 如果配置了originalData为true，请留意这里的返回值
				return res;
			} else if(res.code == 201) {
				// 假设201为token失效，这里跳转登录
				vm.$u.toast('验证失败，请重新操作!');
				// uni.removeStorageSync("rmToken");
				// uni.removeStorageSync("userId");
				// uni.removeStorageSync("rmUser");
				Vue.prototype.$u.http.setConfig({
					header: {
						'token': ""
					}
				})
				setTimeout(() => {
					// 此为uView的方法，详见路由相关文档
					// #ifdef MP-WEIXIN
					vm.$u.route('/pages/pagefive/pages/wxLogin/wxLogin')
					// #endif
					// #ifdef APP
					vm.$u.route('/pages/pagethree/pages/Login/Login')
					// #endif
					// #ifdef MP-TOUTIAO
					vm.$u.route('/pages/pagethree/pages/Login/Login')
					// #endif
					
				}, 1500)
				return false;
			} else if(res.code == 401) {
				// 假设201为token失效，这里跳转登录
				vm.$u.toast('验证过期，请重新操作');
				// uni.removeStorageSync("rmToken");
				// uni.removeStorageSync("userId");
				// uni.removeStorageSync("rmUser");
				Vue.prototype.$u.http.setConfig({
					header: {
						'token': ""
					}
				})
				setTimeout(() => {
					// 此为uView的方法，详见路由相关文档
					// #ifdef MP-WEIXIN
					vm.$u.route('/pages/pagefive/pages/wxLogin/wxLogin')
					// #endif
					// #ifdef APP
					vm.$u.route('/pages/pagethree/pages/Login/Login')
					// #endif
					// #ifdef MP-TOUTIAO
					vm.$u.route('/pages/pagethree/pages/Login/Login')
					// #endif
				}, 1500)
				return false;
			} else if(res.code == 500) {
				// 假设201为token失效，这里跳转登录
				if(res.message!="未点赞"){
					vm.$u.toast(res.message);
				}
				
				// setTimeout(() => {
				// 	// 此为uView的方法，详见路由相关文档
				// 	vm.$u.route('/pages/login/login')
				// }, 1500)
				return false;
			}else if (res.code == 202){
				vm.$u.toast(res.message);return false;
			}else if (res.code == 404){
				vm.$u.toast(res.message);return false;
			}
			else {
				// 如果返回false，则会调用Promise的reject回调，
				// 并将进入this.$u.post(url).then().catch(res=>{})的catch回调中，res为服务端的返回值
				return false;
			}
		}
}
	let baseUrl = 'https://ruo.shanxiyf.com';
export default {
	install,
	baseUrl
}